package com.xyz;

import java.util.ArrayList;

//技能类
public class Skill {
    //技能名
    private String name;
    //技能描述
    private String info;
    //技能攻击力
    private int ap;
    //攻击类型，群攻还是单攻，暂时不考虑只能攻击部分的
    private String attackType;

    public String getAttackType() {
        return attackType;
    }

    public int getAp() {
        return ap;
    }

    public String getInfo() {
        return info;
    }

    public String getName() {
        return name;
    }

    //构造方法
    public Skill(String name, String info, int ap,String attackType) {
        this.name = name;
        this.info = info;
        this.ap = ap;
        this.attackType=attackType;
    }

    //打印技能
    public void print(){
        System.out.println(this.name+"，攻击力："+this.ap+"，技能描述："+this.info);
    }

    //技能攻击
    public void attack(Character enemy){
        System.out.println("对 "+enemy.getName()+"释放技能："+this.name);
        // 调用角色类的掉血的方法，来更改当前挨打角色的生命值
        enemy.loseHp(this.ap);
        System.out.println(this.info);
        System.out.println("打掉"+enemy.getName()+this.ap+"点血，");
        System.out.println(enemy.getName()+"当前血量："+enemy.getHp());
    }

    public void attackAll(ArrayList<? extends Character> enemies){
        System.out.println("对全图所有怪物释放群体技能："+this.name);
        // 调用角色类的掉血的方法，来更改当前挨打角色的生命值
        for (Character enemy:enemies) {
            if(enemy.getHp()>0)
            {
                enemy.loseHp(this.ap);
                System.out.println(this.info);
                System.out.println("打掉"+enemy.getName()+this.ap+"点血，");
                System.out.println(enemy.getName()+"当前血量："+enemy.getHp());
            }
        }
    }

}
